#函数的学习  主要针对学习自定义函数
#函数：组织好的、可重复使用的、用来实现特定功能的代码段
#好处：将功能封装在函数内，可供随时随地重复使用；
    # 提高代码的重复性，减少重复代码，提高开发效率
#1.体验函数的使用和函数的作用
# name = 'xiaofeng'
# print(f'{len(name)}')
#实现内置函数Len的功能
# def my_len(data):
#     sum=0
#     for i in data:
#         sum+=1
#     print(f'{sum}')
# my_len('xiaofeng')#函数的调用

#2.函数的基础定义  函数定义完之后，想要使用，就需要进行调用函数
#def  函数名(传入参数):
#   函数体
#   return 返回值
# def my_print(data):
#     print(f"{data}")
# my_print("xiaofeng")  先定义后调用

#3.函数的参数  实参、形参（一一对应）
# def add(a,b):
#     print(f'{a}+{b}={a+b}')
# add(1,1.3)
# add(1,10)
#函数可以不要参数，也可以要多个参数
#案例
# def mycheck(t):
#     print(f'请出示您的健康码以及72小时以上的核酸证明，并配合测量体温!')
#     if not t <= 37.5:
#         print(f'体温测量中，您的体温是：{t}摄氏度，需要隔离！')
#     else:
#         print(f'体温测量中，您的体温是：{t}摄氏度，体温正常，请进！')
# mycheck(37)

#4.函数返回值  可以通过变量去接收 函数内部执行return之后，后面的语句不再执行
#def 函数名(参数):
#    函数体
#    return 返回值
#变量=函数(参数)
# def myadd(a,b):
#     ret=a+b
#     return ret
# print(myadd(1,3.4))

#5.函数返回值之None类型(表示空的，没有意义的)
#如果函数没有使用return 语句返回数据，那么函数也是有返回值的
# def mytest():
#     print('1')
# print(type(print()))
#主动的写 返回值是None
# def mytest():
#     print('1')
#     return None
# print(type(print()))
#用在if判断上 在if判断上None等同于False
# def check(age):
#     if age>18:
#         return 'success'
#     else:
#         return None
# if check(16):#在这里None就表示的是真假
#     print('成年了')
# else:
#     print('未成年')
#None也可以用于申明无内容的变量上  暂时不需要初始值
#name=None

#6.函数的说明文档  内容应在函数体之前
# def add(x,y):
#     """
#     add函数可以接受两个参数，进行两个数的相加
#     :param x:形参1
#     :param y:形参2
#     :return:返回值是两数相加的结果
#     """
#     ret=x+y
#     print(f'{x}+{y}={x+y}')
#     return ret
# add(1,23)

#7.函数的嵌套调用
# def add(a,b):
#     return a+b
# def mix(a,b):
#     return a*add(a,b)
# print(mix(4,3))

#8.变量在函数中的  作用域    （局部变量）
#注意区分全局变量和局部变量
#对全局变量的修改
# num=200
# def test1():
#     print(num)
# def test2():
#     num=500  #局部变量
#     print(num)
# test1()
# test2()
# print(num)

# num=200
# def test1():
#     print(num)
# def test2():
#     global num  #注意global关键词的使用
#     num =500
#     print(num)
# test1()
# test2()
# print(num)
